The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Static agents are self-contained units of processing that are configured to perform one or more functions. Static agents are used to perform a wide variety of tasks, such as data translation, data processing and data management. In the context of a network, static agents are often installed on most, if not all, network elements in the network. This approach makes the static agents ready to process data as necessary. One of the primary disadvantages of static agents, however, is that they always consume at least some resources, e.g., storage resources, even if they are not actively processing data.
More recently, mobile agents have been used to address the limitations of static agents. Like their static agent counterparts, mobile agents are self-contained units of processing. Unlike static agents, however, mobile agents have the ability to traverse a network, performing work at multiple network elements. A mobile agent moves from a first network element to a second network element by replicating itself on the second network element and then causing the deletion of the original instantiation of the mobile agent on the first network element. Thus, a single mobile agent may perform tasks on a large number of network elements.
One of the primary benefits of mobile agents compared to static agents is that they generally consume relatively fewer resources. For example, a mobile agent may be assigned to perform a task on a first network element. After performing the task on the first network element, the mobile element moves to a second network element. Once the mobile agent has moved from the first network element to the second network element, the mobile agent no longer consumes any resources on the first network element. Thus, mobile agents only consume resources when they reside at a particular network element and are therefore very flexible and useful tools for performing work in networks.
Despite the benefits provided by mobile agents, they do have some drawbacks. One of the most important concerns is the possible adverse effects caused by a mobile agent that ceases to operate in a deterministic manner. Much like a classic computer virus, a mobile agent operating in a non-deterministic manner has the capability to replicate itself and move unimpeded throughout a network. At a minimum, this could have the unintended results of overloading a network or worse, causing the destruction of valuable data.
Based upon the foregoing, there is a need for an approach for managing mobile agents in networks that does not suffer from the limitations in prior approaches. There is a particular need for an approach for managing mobile agents in networks that reduces the risks associated with mobile agents that may begin operating in a non-deterministic manner.